1. Field of the Invention
This invention relates to operating system directed system management in computer systems, and more particularly to the detection of system management events, such as power management events, in a computer system employing operating system directed system management.
2. Description of the Related Art
In conventional modern computer systems, it desirable to be able to perform system management functions such as power management, system configuration, and thermal monitoring. A typical computer system may have dedicated hardware and software routines for performing the system management functions. For example, a computer system may include hardware for power management that slows down or disables power to certain sections of the computer system. Event monitoring hardware may also be included to indicate when various power management states should be transitioned to. Software routines may be provided that respond to hardware events to place the computer into low power or sleep states or wake the computer by transitioning to working states. Typically, such software routines are not part of the high level operating system, but are lower level routines, or BIOS routines provided by the system manufacturer. As a result, such system management routines may vary greatly between system manufacturers and between classes of computers such as desktop, mobile, home, and server computers. Thus, a recent trend has been to move many of the system management functions into the operating system to provide a well defined system management or power management mechanism across various manufacturers and classes of computers. However, it is desirable for operating system directed power management or system management to still recognize events from old or legacy hardware devices.
The Advanced Configuration and Power Interface (ACPI) specification is an example of a specification for an operating system directed power management mechanism. The ACPI specification is being jointly developed by Intel, Microsoft and Toshiba and is herein incorporated by reference. A computer system supporting ACPI includes ACPI compliant core logic and an ACPI compliant operating system. An example of an ACPI compliant operating system is the upcoming Microsoft Memphis or Windows 98 operating system. An example of ACPI compliant core logic is the Intel PIIX4 chip set. ACPI supports various power management states as described in the ACPI specification. When an ACPI compliant computer system is in a power-on-suspend (POS) state, if a wake up device such as a keyboard or modem wants to wake the computer system from the power-on-suspend state to a working state, it must generate a ACPI compliant wake event. Current ACPI compliant operating systems, such as Microsoft's Memphis, will only recognize a resume event as an ACPI compliant wake event if the event is indicated in an ACPI general purpose event register. Current ACPI core logic devices, such as the Intel PIIX4 chip set, implement the ACPI general purpose event register. However, only wake up devices with a dedicated signal to the core logic can cause an event to be indicated in the ACPI general purpose event register. In other words, a wake up device must be hard wired to the ACPI general purpose event register in order to be able to indicate a wake up event that will be recognized by the ACPI compliant operating system.
New computer systems may be designed with devices that are capable of generating events on dedicated signals to the ACPI core logic so that wake events may be indicated in the general purpose event register. For example, dedicated signals may be provided for thermal events, keyboard activity, modem ring indication, etc. However, it is also desirable to be able to take advantage of operating system directed power management in a computer system utilizing older devices that are not connected to a dedicated signal to the general purpose event register. For example, an old style keyboard, mouse, or modem would not have a connection to the dedicated general purpose event register signals. Typically these types of devices use interrupt request signals to indicate a resumption of activity. Also, even for new devices it may not be practical to add dedicated ACPI event signals from the device to the ACPI general purpose event register. Adding ACPI event signals to new devices would add cost and complexity. More importantly it precludes the use of existing ISA or PCI cards as wake up devices because they lack hard wired wake up signals.
One solution for allowing a new PCI or ISA card to be able to generate ACPI compliant wake up events would be to use one of the reserved PCI or ISA connector signals for the dedicated general purpose event register signal. Alternatively, a dedicated side band cable could be used to provide the dedicated signal from the PCI or ISA card to the general purpose event register, however, these solutions are unsatisfactory. Using the reserved PCI or ISA signals may interfere with future modifications to those buses. A dedicated side band cable adds cost and complexity to the system. Furthermore, neither of those solutions would allow existing ISA or PCI cards to act as wake up devices because existing cards lack a dedicated wake up event signal.
Therefore it is desirable to be able to wake a computer running an operating system directed power management mechanism such as an ACPI operating system from a power-on-suspend state upon detecting an event from a legacy (non ACPI compliant) wake up device such as a keyboard, mouse or modem. Existing ACPI chip sets allow only hard wired signals to generate ACPI compliant wake events. It is desirable to have a solution to allow the generation of ACPI compliant wake events upon resuming from a power-on-suspend state. This would permit any event capable of resuming from a power-on-suspend state to generate an ACPI compliant wake event without adding hard wired ACPI wake signals. In other words, it is desirable to provide for new and existing wake up devices to be able to generate wake events that will be recognized by an operating system directed power management mechanism without the addition of dedicated hardware signals.